package au.com.acpfg.misc.muscle; import org.knime.core.data.DataColumnSpec; import org.knime.core.data.DataType; import org.knime.core.node.defaultnodesettings.DefaultNodeSettingsPane; import org.knime.core.node.defaultnodesettings.DialogComponentColumnNameSelection; import org.knime.core.node.defaultnodesettings.DialogComponentNumber; import org.knime.core.node.defaultnodesettings.DialogComponentString; import org.knime.core.node.defaultnodesettings.DialogComponentStringSelection; import org.knime.core.node.defaultnodesettings.SettingsModelIntegerBounded; import org.knime.core.node.util.ColumnFilter; import org.knime.core.data.def.StringCell; /** * <code>NodeDialog</code> for the "MuscleAccessor" Node. * Provides multiple alignment data from MUSCLE as implemented by EBI * * This node dialog derives from {@link DefaultNodeSettingsPane} which allows * creation of a simple dialog with standard components. If you need a more * complex dialog please derive directly from * {@link org.knime.core.node.NodeDialogPane}. * * @author Andrew Cassin */ public class MuscleAccessorNodeDialog extends DefaultNodeSettingsPane { /** * New pane for configuring MuscleAccessor node dialog. * This is just a suggestion to demonstrate possible default dialog * components. */ protected MuscleAccessorNodeDialog() { super(); ColumnFilter cf = new ColumnFilter() { @Override public String allFilteredMsg() { return "No suitable collection columns found - MUSCLE requires a collection of sequences (see help)!"; } @Override public boolean includeColumn( DataColumnSpec colSpec) { DataType dt = colSpec.getType(); if (dt.isCollectionType()) { return true; } return false; } }; addDialogComponent(new DialogComponentString(MuscleAccessorNodeModel.make_as_string(MuscleAccessorNodeModel.CFGKEY_EMAIL), "Email Address", true, 30)); addDialogComponent(new DialogComponentColumnNameSelection(MuscleAccessorNodeModel.make_as_string(MuscleAccessorNodeModel.CFGKEY_SEQ_COL), "Sequence Collection", 0, cf)); addDialogComponent(new DialogComponentColumnNameSelection(MuscleAccessorNodeModel.make_as_string(MuscleAccessorNodeModel.CFGKEY_ACCSN_COL), "Accession Collection", 0, cf)); addDialogComponent(new DialogComponentStringSelection(MuscleAccessorNodeModel.make_as_string(MuscleAccessorNodeModel.CFGKEY_ALIGNMENT_TYPE), "Aligned Sequences are...", new String[] {"Protein Sequences", "Nucleotide (incl. IUPAC codes)"} )); } }